#!/bin/bash
# LinuxGSM alert_slack.sh module
# Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Sends Slack alert.

functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"

json=$(cat <<EOF
{
		"attachments": [
			{
				"color": "#36a64f",
				"blocks": [
					{
										"type": "section",
										"text": {
												"type": "mrkdwn",
												"text": "*LinuxGSM Alert*"
										}
								},
								{
										"type": "section",
										"text": {
												"type": "mrkdwn",
												"text": "*${alertemoji} ${alertsubject}* \n ${alertbody}"
										}
								},
								{
										"type": "divider"
								},
								{
										"type": "section",
										"fields": [
												{
														"type": "mrkdwn",
														"text": "*Game:* \n ${gamename}"
												},
												{
														"type": "mrkdwn",
														"text": "*Server IP:* \n ${alertip}:${port}"
												},
												{
														"type": "mrkdwn",
														"text": "*Server Name:* \n ${servername}"
												}
										]
								},
					 {
										"type": "section",
										"text": {
														"type": "mrkdwn",
														"text": "Hostname: ${HOSTNAME} / More info: ${alerturl}"
										}
								}
						]
			}
		]
}
EOF
)

fn_print_dots "Sending Slack alert"

slacksend=$(curl --connect-timeout 10 -sSL -H "Content-Type: application/json" -X POST -d "$(echo -n "${json}" | jq -c .)" "${slackwebhook}")

if [ "${slacksend}" == "ok" ]; then
	fn_print_ok_nl "Sending Slack alert"
	fn_script_log_pass "Sending Slack alert"
else
	fn_print_fail_nl "Sending Slack alert: ${slacksend}"
	fn_script_log_fatal "Sending Slack alert: ${slacksend}"
fi
